#ifndef __DEFINE_H__
#define __DEFINE_H__



#ifdef __GNUC__

#include <bits/stdc++.h>
#define MAP_FILE1    "../map.txt"
#define MAP_FILE2    "../map2.txt"

#else

#include <iostream>
#include <vector>
#define MAP_FILE    "map.txt"

#endif

#define MINIMUM 1e-8
#define INTERATION 3

typedef std::pair<int, int> pair_int;
typedef std::pair<double, int> pair_di;
typedef std::vector<std::vector<bool>> towDims;

typedef enum {
    LEAVE = 0,
    RETURN
} Status;

typedef enum {
    RIGHT = 0,
    LOWERRIGHT,
    LOWER,
    LOWERLEFT,
    LEFT,
    UPPERLEFT,
    UPPER,
    UPPERRIGHT,
    OTHER
} Direction;

class ant {
public:
    ant(pair_int start) {
        status = LEAVE;
        dis = 0;
        num = 0;
        current = start;
        last = start;
    }

    void clear(pair_int start) {
        path.clear();
        status = LEAVE;
        dis = 0;
        num = 0;
        current = start;
        last = start;
    }

    std::vector<pair_int> path;
    Status status;
    pair_int current;
    pair_int last;
    double dis;
    int num;
private:

};

#endif
